/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Persistencia;

import Persistencia.Entidades.BoletaSenasa;
import Persistencia.Entidades.PagoSenasa;
import Persistencia.Entidades.Sanitario;
import java.util.List;

/**
 *La IBoletaSenasaDAO provee los métodos para la insercción, eliminación y actualización
 * de los Boletas de Senasa en la Base de Datos.
 *
 * La  IBoletaSenasaDAO provee los métodos para la recuperación de los Boletas de Senasa de la
 * Base de Datos.
 *
 * Ofrece la correspondencia Objeto Relacional entre un Objeto Entidad BoletaSenasa con
 * las tablas relacionales de la base de datos
 * @author zeta
 */
public interface IBoletaSenasaDAO {
    
     
    /**
     * Inserta una Boleta en la base de datos
     * @param boletaSenasa un Objeto BoletaSenasa a guardar en la base de datos
     * @return un Integer con el  NUM_BOLETA de la boleta que se guardo - null si hay error
     */
    public Integer insertBoletaSenasa(BoletaSenasa boletaSenasa);
      /**
       * Actualiza una Boleta en la base de datos. Utiliza el NUM_BOLETA para recuperar el Objeto y actualizarlo
       * @param boletaSenasa un Objeto BoletaSenasa a actualizar en la base de datos
       * @return true si se actualizo correctamente - false en caso contrario
       */
      public boolean updateBoletaSenasa(BoletaSenasa boletaSenasa);
      /**
       * Elimina una Boleta en la base de datos. Utiliza el NUM_BOLETA para recuperar el Objeto y eliminarlo
       * @param boletaSenasa un Objeto BoletaSenasa a eliminar en la base de datos
       * @return true si se actualizo correctamente - false en caso contrario
       */
      public boolean deleteBoletaSenasa(BoletaSenasa boletaSenasa);
      /**
       * Retorna un BoletaSenasa construido con los valores recuperados de la
       * Base de Datos correspondiente al numBoleta que se envia como parametro
       * @param numBoleta un Integer con el numero de la boleta que se quiere recuperar
       * @param conSanitario true para recuperar el BoletaSenasa con la referencia a los sanitarios relacionados
       * @return un BoletaSenasa
       */
      public BoletaSenasa getBoletaSenasa(Integer numBoleta,boolean conSanitario);
      /**
       * Retorna una Lista  con todos los BoletaSenasa construido con los valores recuperados de la
       * Base de Datos
       * @param conSanitario true para recuperar el BoletaSenasa con la referencia a los sanitarios relacionados
       * @return un List<BoletasSensa> con todas las boletas de senasa
       */
      public List<BoletaSenasa> getAllBoletasSenasa(boolean conSanitario);
      /**
       * El método se encarga de cargar en el objeto PagoSenasa enviado como parametro
       * con las boletas correspondiente al mismo
       * @param pagoSenasa el Objeto PagoSenasa donde se cargan un List<BoletasSenasa>
       * @param conSanitario true para cargar las boletas con los sanitarios asociados
       * @return true si se realizo correctamente - false en caso contrario
       */
      public boolean getAllBoletasSenasa(PagoSenasa pagoSenasa,boolean conSanitario);
      /**
       * El método se encarga de cargar en el objeto Sanitario enviado como parametro
       * con las boletas correspondiente al mismo
       * @param sanitario el Objeto Sanitario donde se cargan un List<BoletasSenasa>
       * @param conSanitario true para cargar las boletas con los sanitarios asociados
       * @return true si se realizo correctamente - false en caso contrario
       */
      public boolean getAllBoletasSenasa(Sanitario sanitario,boolean conSanitario);
      /**
       * Retorna una Lista  con todos los BoletaSenasa que no tienen asociado un
       * Sanitario construido con los valores recuperados de la
       * Base de Datos
       * @return true si se realizo correctamente - false en caso contrario
       */
      public List<BoletaSenasa> getAllBoletasSenasaSinSanitario();
      /**
       * Retorna una Lista  con todos los BoletaSenasa sin pagar construido con
       * los valores recuperados de la
       * Base de Datos
       * @param conSanitario true para cargar las boletas con los sanitarios asociados
       * @return true si se realizo correctamente - false en caso contrario
       */
      public List<BoletaSenasa> getAllBoletasSenasaSinPagar(boolean conSanitario);
      /**
       * Retorna una Lista  con todos los BoletaSenasa que no tienen asociado un
       * Pago construido con los valores recuperados de la
       * Base de Datos
       * @param conSanitario true para cargar las boletas con los sanitarios asociados
       * @return true si se realizo correctamente - false en caso contrario
       */
      public List<BoletaSenasa> getAllBoletasSenasaSinPago(boolean conSanitario);
}
